#!/bin/bash

echo "版本：v2.0"
# 调试：显示是否检测到管道输入
if [ -p /dev/stdin ]; then
    echo "检测到管道输入，正在清理行尾符..."
    # 创建临时文件并清理 \r
    tmp_script=$(mktemp)
    # 使用 cat 和 tr 清理管道输入中的 \r
    cat /dev/stdin | tr -d '\r' > "$tmp_script"
    chmod +x "$tmp_script"
    # 执行清理后的脚本并传递参数
    bash "$tmp_script" "$@"
    # 清理临时文件
    rm -f "$tmp_script"
    exit $?
else
    echo "非管道输入，直接执行脚本..."
fi

# 检查是否以root用户运行
if [ "$(id -u)" != "0" ]; then
    echo "此脚本必须以root权限运行"
    echo "请使用以下方式之一执行："
    echo "1. 先切换到root: su - 然后重新运行脚本"
    echo "2. 使用sudo: sudo bash $0"
    exit 1
fi

# 备份原始的sshd_config文件（如果备份文件不存在）
backup_file="/etc/ssh/sshd_config.backup.$(date +%Y%m%d)"
if [ ! -f "$backup_file" ]; then
    cp /etc/ssh/sshd_config "$backup_file"
    echo "sshd_config文件已备份到 $backup_file"
fi

# 设置PermitRootLogin为yes
sed -i 's/^\s*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
if ! grep -q '^\s*PermitRootLogin' /etc/ssh/sshd_config; then
    echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
fi

# 检查SSH服务重启命令的可用性并执行
if systemctl --version >/dev/null 2>&1; then
    systemctl restart sshd
    echo "使用systemctl重启SSHD服务"
else
    /etc/init.d/ssh restart
    echo "使用init.d重启SSH服务"
fi

echo "SSH配置已更新，允许root用户通过密码登录。SSH服务已重启。"